#pragma once
#include "stdafx.h"
#include "IReadingInformation.h"

namespace Sensor {

	class GraphTestReadingInformation : public IReadingInformation {
	private:
		double getReadingValue(const int sensorId, const std::string readingType, const long int time) const;
		const int readingInterval;
	public:
		GraphTestReadingInformation(const int readingInterval=60) : readingInterval(readingInterval) { }
		~GraphTestReadingInformation() {}
		virtual void update();
		virtual std::list<std::unique_ptr<IReading>> getReading(const int sensorId, const std::string readingType, const ITime& start, const ITime& end) const;
		virtual double getReadingAverage(const int sensorId, const std::string readingType, const ITime& start, const ITime& end) const { return 0; }
		virtual std::set<std::string> getReadingTypes() const;
		virtual std::set<int> getSensorIds(const ITime& start, const ITime& end) const;
		virtual void onReading(unique_ptr<IReading>& reading);
	};

}